Pair programming

  • agile software development technique
  • two programmers work as a pair together on one computer

In [3]:
from IPython.display import Image

In [5]:
Image("Pair_programming_1.jpg", width=400, height=300)
# From https://commons.wikimedia.org/wiki/File:Pair_programming_1.jpg


Out[5]:

Advantages

  • increases software quality without impacting time to deliver.
  • same output
  • higher code quality
  • lower costs in the long run

Disadvantages

  • can be awkward at the start
  • takes time to learn

Roles

driver

writes code

observer (pointer or navigator)

reviews each line of code as it is typed in

Variations

Expert–expert

  • most common
  • very productive, great results
  • sticks to established practices

Expert–novice

  • form of mentoring
  • expert has to explain established practices and is more likely to question them
  • can be intimidating for novice

Novice–novice

  • less common
  • still produces better results than two individual novices

What's next?

  • Go to rosalind.info and register or login with Google, Twitter, Facebook, etc.
  • Types of problems:
    • Python village - basics
    • Bioinformatics stronghold - Discover the algorithms underlying a variety of bioinformatics topics
    • Bioinformatics armory - Whereas in the Stronghold you implement algorithms on your own, in the Armory you solve similar problems by using existing tools.
    • Bioinformatics Textbook Track and Algorithmic Heights accompany a popular bioinformatics course and a book, respectively
  • 15 - 30 minutes per problem
  • volunteers that are the less experienced from the pair present a solution
  • You can use any programming language!